<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.4"/>
<title>MPCDI Library: mpcdi::Reader Class Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript">
  $(document).ready(initResizable);
  $(window).load(resizeHeight);
</script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
  $(document).ready(function() { searchBox.OnSelectItem(0); });
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td id="projectlogo"><img alt="Logo" src="scalable_logo.gif"/></td>
  <td style="padding-left: 0.5em;">
   <div id="projectname">MPCDI Library
   </div>
   <div id="projectbrief">MPCDI  Reader/Writer/Creater/Validator/etc.</div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.4 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
  <div id="navrow1" class="tabs">
    <ul class="tablist">
      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
      <li><a href="files.html"><span>Files</span></a></li>
      <li>
        <div id="MSearchBox" class="MSearchBoxInactive">
        <span class="left">
          <img id="MSearchSelect" src="search/mag_sel.png"
               onmouseover="return searchBox.OnSearchSelectShow()"
               onmouseout="return searchBox.OnSearchSelectHide()"
               alt=""/>
          <input type="text" id="MSearchField" value="Search" accesskey="S"
               onfocus="searchBox.OnSearchFieldFocus(true)" 
               onblur="searchBox.OnSearchFieldFocus(false)" 
               onkeyup="searchBox.OnSearchFieldChange(event)"/>
          </span><span class="right">
            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
          </span>
        </div>
      </li>
    </ul>
  </div>
  <div id="navrow2" class="tabs2">
    <ul class="tablist">
      <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
      <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
      <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
      <li><a href="functions.html"><span>Class&#160;Members</span></a></li>
    </ul>
  </div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
  <div id="nav-tree">
    <div id="nav-tree-contents">
      <div id="nav-sync" class="sync"></div>
    </div>
  </div>
  <div id="splitbar" style="-moz-user-select:none;" 
       class="ui-resizable-handle">
  </div>
</div>
<script type="text/javascript">
$(document).ready(function(){initNavTree('classmpcdi_1_1_reader.html','');});
</script>
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark">&#160;</span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(10)"><span class="SelectionMark">&#160;</span>Pages</a></div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0" 
        name="MSearchResults" id="MSearchResults">
</iframe>
</div>

<div class="header">
  <div class="summary">
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="#pub-static-methods">Static Public Member Functions</a> &#124;
<a href="#pro-attribs">Protected Attributes</a> &#124;
<a href="classmpcdi_1_1_reader-members.html">List of all members</a>  </div>
  <div class="headertitle">
<div class="title">mpcdi::Reader Class Reference<span class="mlabels"><span class="mlabel">abstract</span></span></div>  </div>
</div><!--header-->
<div class="contents">

<p>An MPCDI <a class="el" href="classmpcdi_1_1_reader.html" title="An MPCDI Reader. ">Reader</a>.  
 <a href="classmpcdi_1_1_reader.html#details">More...</a></p>

<p><code>#include &lt;<a class="el" href="mpcdi_reader_8h_source.html">mpcdiReader.h</a>&gt;</code></p>
<div class="dynheader">
Inheritance diagram for mpcdi::Reader:</div>
<div class="dyncontent">
 <div class="center">
  <img src="classmpcdi_1_1_reader.png" usemap="#mpcdi::Reader_map" alt=""/>
  <map id="mpcdi::Reader_map" name="mpcdi::Reader_map">
<area href="classmpcdi_1_1_reader_intern.html" title="An Implementation of the MPCDI Reader. " alt="mpcdi::ReaderIntern" shape="rect" coords="0,56,124,80"/>
</map>
 </div></div>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr class="memitem:a8c662770fa2379c20dd15786a0715fd1"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="namespacempcdi.html#acd4b0b3107b2a04ec04ba94b834fd881">MPCDI_Error</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmpcdi_1_1_reader.html#a8c662770fa2379c20dd15786a0715fd1">Read</a> (std::istream &amp;is, <a class="el" href="structmpcdi_1_1_profile.html">Profile</a> *profile)=0</td></tr>
<tr class="separator:a8c662770fa2379c20dd15786a0715fd1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a79a2956dd54d4389603fc99e4d5bb2fe"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="namespacempcdi.html#acd4b0b3107b2a04ec04ba94b834fd881">MPCDI_Error</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmpcdi_1_1_reader.html#a79a2956dd54d4389603fc99e4d5bb2fe">Read</a> (std::string FileName, <a class="el" href="structmpcdi_1_1_profile.html">Profile</a> *profile)=0</td></tr>
<tr class="separator:a79a2956dd54d4389603fc99e4d5bb2fe"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac34c73cf9f2493ad740d4bda003c3905"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmpcdi_1_1_reader.html#ac34c73cf9f2493ad740d4bda003c3905">mpcdiSetMacro</a> (DoProfileValidation, bool)</td></tr>
<tr class="separator:ac34c73cf9f2493ad740d4bda003c3905"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0b0f74c571c6fadd352bb499b4b7daad"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmpcdi_1_1_reader.html#a0b0f74c571c6fadd352bb499b4b7daad">mpcdiGetConstMacro</a> (DoProfileValidation, bool)</td></tr>
<tr class="separator:a0b0f74c571c6fadd352bb499b4b7daad"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a75f5c8e16262c1810645a3ce29559723"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmpcdi_1_1_reader.html#a75f5c8e16262c1810645a3ce29559723">mpcdiSetMacro</a> (CheckVersionSupported, bool)</td></tr>
<tr class="separator:a75f5c8e16262c1810645a3ce29559723"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af786a67e51484cb1955bb3b0295f68d1"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmpcdi_1_1_reader.html#af786a67e51484cb1955bb3b0295f68d1">mpcdiGetConstMacro</a> (CheckVersionSupported, bool)</td></tr>
<tr class="separator:af786a67e51484cb1955bb3b0295f68d1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6e819b3012e772f0912683b3f0bb13c4"><td class="memItemLeft" align="right" valign="top">virtual std::string&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmpcdi_1_1_reader.html#a6e819b3012e772f0912683b3f0bb13c4">GetSupportedVersions</a> ()=0</td></tr>
<tr class="separator:a6e819b3012e772f0912683b3f0bb13c4"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-static-methods"></a>
Static Public Member Functions</h2></td></tr>
<tr class="memitem:a4e85538a6d81ec1d90f46998f592d1eb"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="classmpcdi_1_1_reader.html">Reader</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmpcdi_1_1_reader.html#a4e85538a6d81ec1d90f46998f592d1eb">CreateReader</a> ()</td></tr>
<tr class="separator:a4e85538a6d81ec1d90f46998f592d1eb"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pro-attribs"></a>
Protected Attributes</h2></td></tr>
<tr class="memitem:a5d7d0ba2ab12cfc8be65f6058afd3938"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmpcdi_1_1_reader.html#a5d7d0ba2ab12cfc8be65f6058afd3938">m_DoProfileValidation</a></td></tr>
<tr class="separator:a5d7d0ba2ab12cfc8be65f6058afd3938"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9bf1ec6e94ffc381c3668fabb2da3a28"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmpcdi_1_1_reader.html#a9bf1ec6e94ffc381c3668fabb2da3a28">m_CheckVersionSupported</a></td></tr>
<tr class="separator:a9bf1ec6e94ffc381c3668fabb2da3a28"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>An MPCDI <a class="el" href="classmpcdi_1_1_reader.html" title="An MPCDI Reader. ">Reader</a>. </p>
<dl class="section rcs"><dt>Date:</dt><dd>2012-02-08 11:39:41 -0500 (Wed, 08 Feb 2012) </dd></dl>
<dl class="section rcs"><dt>Revision:</dt><dd>18341 </dd></dl>
<p>.AUTHOR Scalable <a class="el" href="structmpcdi_1_1_display.html" title="A Collection of Buffers. ">Display</a> Technologies, Inc.</p>
<p>Some comments on future compatibility. This implementation was written for version 1, draft 15 of the MCPDI standard. It seems likely there will be new versions in the future. The committee has not yet decided how future/backwards compatibility will be handled. This code makes the guess that extra tags will simply be added.</p>
<dl class="section user"><dt>Someday:</dt><dd>It would be nice if the reader could find un-used tags for errors. </dd></dl>
</div><h2 class="groupheader">Member Function Documentation</h2>
<a class="anchor" id="a4e85538a6d81ec1d90f46998f592d1eb"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classmpcdi_1_1_reader.html">Reader</a> * Reader::CreateReader </td>
          <td>(</td>
          <td class="paramname">)</td><td></td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>creates a reader object </p>

</div>
</div>
<a class="anchor" id="a6e819b3012e772f0912683b3f0bb13c4"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual std::string mpcdi::Reader::GetSupportedVersions </td>
          <td>(</td>
          <td class="paramname">)</td><td></td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>get supported versions </p>

<p>Implemented in <a class="el" href="classmpcdi_1_1_reader_intern.html#ab46b47728a0244f19ce77c79d2e6e26f">mpcdi::ReaderIntern</a>.</p>

</div>
</div>
<a class="anchor" id="a0b0f74c571c6fadd352bb499b4b7daad"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">mpcdi::Reader::mpcdiGetConstMacro </td>
          <td>(</td>
          <td class="paramtype">DoProfileValidation&#160;</td>
          <td class="paramname">, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">bool&#160;</td>
          <td class="paramname">&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

</div>
</div>
<a class="anchor" id="af786a67e51484cb1955bb3b0295f68d1"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">mpcdi::Reader::mpcdiGetConstMacro </td>
          <td>(</td>
          <td class="paramtype">CheckVersionSupported&#160;</td>
          <td class="paramname">, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">bool&#160;</td>
          <td class="paramname">&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

</div>
</div>
<a class="anchor" id="ac34c73cf9f2493ad740d4bda003c3905"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">mpcdi::Reader::mpcdiSetMacro </td>
          <td>(</td>
          <td class="paramtype">DoProfileValidation&#160;</td>
          <td class="paramname">, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">bool&#160;</td>
          <td class="paramname">&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>should we validate the profile after reading default: false </p>

</div>
</div>
<a class="anchor" id="a75f5c8e16262c1810645a3ce29559723"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">mpcdi::Reader::mpcdiSetMacro </td>
          <td>(</td>
          <td class="paramtype">CheckVersionSupported&#160;</td>
          <td class="paramname">, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">bool&#160;</td>
          <td class="paramname">&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>should we check if version of profile being read in is supported. If set to false a attempt is made to read it in pretending it is the highest supported version default: true </p>

</div>
</div>
<a class="anchor" id="a8c662770fa2379c20dd15786a0715fd1"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual <a class="el" href="namespacempcdi.html#acd4b0b3107b2a04ec04ba94b834fd881">MPCDI_Error</a> mpcdi::Reader::Read </td>
          <td>(</td>
          <td class="paramtype">std::istream &amp;&#160;</td>
          <td class="paramname"><em>is</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structmpcdi_1_1_profile.html">Profile</a> *&#160;</td>
          <td class="paramname"><em>profile</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>The different ways to read. profile should be NULL. It will be allocated. It needs to be de-allocated. </p>

<p>Implemented in <a class="el" href="classmpcdi_1_1_reader_intern.html#ab36a11a4689b085a998fa6c9f39c7369">mpcdi::ReaderIntern</a>.</p>

</div>
</div>
<a class="anchor" id="a79a2956dd54d4389603fc99e4d5bb2fe"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual <a class="el" href="namespacempcdi.html#acd4b0b3107b2a04ec04ba94b834fd881">MPCDI_Error</a> mpcdi::Reader::Read </td>
          <td>(</td>
          <td class="paramtype">std::string&#160;</td>
          <td class="paramname"><em>FileName</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structmpcdi_1_1_profile.html">Profile</a> *&#160;</td>
          <td class="paramname"><em>profile</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Implemented in <a class="el" href="classmpcdi_1_1_reader_intern.html#a712956bca07cf9d657446da81cdce63c">mpcdi::ReaderIntern</a>.</p>

</div>
</div>
<h2 class="groupheader">Member Data Documentation</h2>
<a class="anchor" id="a9bf1ec6e94ffc381c3668fabb2da3a28"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">bool mpcdi::Reader::m_CheckVersionSupported</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

</div>
</div>
<a class="anchor" id="a5d7d0ba2ab12cfc8be65f6058afd3938"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">bool mpcdi::Reader::m_DoProfileValidation</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>Member variables </p>

</div>
</div>
<hr/>The documentation for this class was generated from the following files:<ul>
<li>src/IO/<a class="el" href="mpcdi_reader_8h_source.html">mpcdiReader.h</a></li>
<li>src/IO/<a class="el" href="mpcdi_reader_intern_8cpp.html">mpcdiReaderIntern.cpp</a></li>
</ul>
</div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
  <ul>
    <li class="navelem"><a class="el" href="namespacempcdi.html">mpcdi</a></li><li class="navelem"><a class="el" href="classmpcdi_1_1_reader.html">Reader</a></li>
    <li class="footer">Generated on Thu Aug 15 2013 13:49:02 for MPCDI Library by
    <a href="http://www.doxygen.org/index.html">
    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.4 </li>
  </ul>
</div>
</body>
</html>
